// Linux中一切内容都被看成文件，文件提供了简单并一致的接口来处理系统服务与设备
// 所有的操作都可以归结为对文件的操作
// 操作系统可以像处理普通文件一样来使用磁盘文件、串口、键盘、显示器、打印机及其他的设备
// ls -l -> 查看当前路径下文件的属性
// 第一组10位字符，分为四类：
//      第1位：文件类型，"-"(普通文件)，"d"(目录)，"l"(链接文件)，"c"(字符设备文件)，"b"(块设备文件)，"p"(管道文件)，"s"(套接字文件)
//      第2~4位：所有者权限，读写和执行
//      第5~7位：文件所有者同组用户权限，读写和执行
//      第8~10位: 其它组用户权限，读写和执行
// 设备文件是用于为操作系统与I/O设备提供连接的一种文件，分为字符设备文件和块设备文件，对应于字符设备和块设备
// 每一种I/O设备对应一个设备文件，存放在/dev目录中，如行式打印机对应于文件/dev/lp
// 在设备文件中有一个极其特殊的文件/dev/null。所有放入这一设备的数据都将不存在，可以将它看做是删除操作
// 字符设备（Character device）​：
//      这是一个顺序的数据流设备，对这种设备的读写是按字符进行的，而且这些字符是连续地形成一个数据流。
//      字符设备不具备缓冲区，所以对这种设备的读写是实时的，如串口终端、磁带机等
// 块设备（block device）​：
//      这是一种具有一定结构的随机存取设备，对这种设备的读写是按块进行的，它使用缓冲区来存放暂时的数据
//      待条件成熟后，从缓存一次性写入设备或从设备中一次性读出放入到缓冲区，如磁盘和文件系统等
// 管道文件主要用于在进程间传递数据，它是Linux进程间的一种通信机制
// 套接口（Socket）文件主要用于在不同计算机的进程间的通信，也称为套接字